package org.hilo.boot.app.tool;

/**
 * 封装基本的获取用户ID的方法
 * @author zollty
 * @since 2022年10月26日
 */
public class RequestUserAdapter {
    
    private static RequestUserService service = null;
    
    /** 
     * 获取当前会话账号id
     * @param <T> 返回类型 
     * @return 登录id 
     */
    public static <T> T getLoginId() {
        if (service != null) {
            return service.getLoginId();
        }
        return null;
    }

    /** 
     * 获取当前会话账号id 
     * @param <T> 返回类型 
     * @param context 上下文
     * @return 登录id 
     */
    public static <T> T getLoginId(Object context) {
        if (service != null) {
            return service.getLoginId(context);
        }
        return null;
    }
    
    /** 
     * 获取当前会话用户
     * @param <T> 返回类型 
     * @return 当前登录用户或null
     */
    public static <T> T getLoginUser() {
        if (service != null) {
            return service.getLoginUser();
        }
        return null;
    }
    
    /** 
     * 获取当前会话用户
     * @param <T> 返回类型 
     * @return 当前登录用户或null
     */
    public static <T> T getLoginUser(Object context) {
        if (service != null) {
            return service.getLoginUser(context);
        }
        return null;
    }
    
    /**
     * @return the service
     */
    public static RequestUserService getService() {
        return service;
    }

    /**
     * @param service the service to set
     */
    public static void setService(RequestUserService service) {
        RequestUserAdapter.service = service;
    }
}
